home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Source / Asm / Screens / Redimension.s < prev    next >
Text File  |  1997-12-16  |  4KB  |  181 lines

  1. ;-------T-------T------------------------T----------------------------------;
  2. ;Name:      Screen Redimension Demo
  3. ;Author:    Paul Manias
  4. ;Copyright: DreamWorld Productions (c) 1996-1997.  Freely distributable.
  5. ;
  6. ;Test routine for height and width alteration.  Move the mouse to alter the
  7. ;position of the screen's right hand corner.  Hold the LMB and move the
  8. ;mouse around to move the entire screen around your monitor.
  9. ;
  10. ;Press RMB to exit.
  11.  
  12.     INCDIR    "GMSDev:Includes/"
  13.     INCLUDE    "dpkernel/dpkernel.i"
  14.  
  15.     SECTION    "Demo",CODE
  16.  
  17. ;===========================================================================;
  18. ;                             INITIALISE DEMO
  19. ;===========================================================================;
  20.  
  21.     STARTDPK
  22.  
  23. Start:    MOVEM.L    A0-A6/D1-D7,-(SP)
  24.     lea    PictureTags(pc),a0
  25.     sub.l    a1,a1
  26.     CALL    Init
  27.     tst.l    d0
  28.     beq.s    .Exit
  29.  
  30.     lea    ScreenTags(pc),a0
  31.     move.l    Picture(pc),a1
  32.     move.l    PIC_Bitmap(a1),a2
  33.     move.l    BMP_Data(a2),GMemPtr
  34.     move.l    PIC_Palette(a1),GPalette
  35.     sub.l    a1,a1
  36.     CALL    Init
  37.     tst.l    d0
  38.     beq.s    .Exit
  39.  
  40.     moveq    #ID_JOYDATA,d0    ;Get joydata structure for reading
  41.     CALL    Get    ;user input.
  42.     move.l    d0,JoyData
  43.     beq.s    .Exit
  44.     move.l    d0,a0
  45.     sub.l    a1,a1
  46.     CALL    Init
  47.     tst.l    d0
  48.     beq.s    .Exit
  49.  
  50.     move.l    Screen(pc),a0
  51.     CALL    Display
  52.     tst.l    d0
  53.     bne.s    .Exit
  54.  
  55.     bsr.s    Main
  56.  
  57. .Exit    move.l    DPKBase(pc),a6
  58.     move.l    JoyData(pc),a0
  59.     CALL    Free
  60.     move.l    Picture(pc),a0
  61.     CALL    Free
  62.     move.l    Screen(pc),a0
  63.     CALL    Free
  64.     MOVEM.L    (SP)+,A0-A6/D1-D7
  65.     moveq    #ERR_OK,d0
  66.     rts
  67.  
  68. ;===========================================================================;
  69. ;                                MAIN LOOP
  70. ;===========================================================================;
  71.  
  72. Main:    move.l    DPKBase(pc),a6
  73.     move.l    JoyData(pc),a0
  74.     CALL    Query
  75.  
  76.     move.l    JoyData(pc),a1
  77.     move.l    JD_Buttons(a1),d0
  78.     move.w    JD_XChange(a1),d1
  79.     move.w    JD_YChange(a1),d2
  80.  
  81.     btst    #JB_RMB,d0
  82.     bne.s    Fade_Here
  83.  
  84.     btst    #JB_LMB,d0
  85.     bne.s    .RMB
  86.  
  87.     move.l    Screen(pc),a0
  88.     add.w    d1,GS_Width(a0)
  89.     add.w    d2,GS_Height(a0)
  90.     bra.s    .chkty
  91.  
  92. .RMB    ;move.l    Screen(pc),a0
  93.     ;add.w    d1,GS_XOffset(a0)
  94.     ;add.w    d2,GS_YOffset(a0)
  95.  
  96. .chkty    tst.w    GS_Height(a0)
  97.     bge.s    .chkby
  98.     clr.w    GS_Height(a0)
  99. .chkby    cmp.w    #256,GS_Height(a0)
  100.     ble.s    .chklx
  101.     move.w    #256,GS_Height(a0)
  102. .chklx    tst.w    GS_Width(a0)
  103.     bge.s    .chkrx
  104.     clr.w    GS_Width(a0)
  105. .chkrx    cmp.w    #320,GS_Width(a0)
  106.     ble.s    .done
  107.     move.w    #320,GS_Width(a0)
  108.  
  109. .done    move.l    SCRBase(pc),a6
  110.     move.l    Screen(pc),a0
  111.     CALL    scrWaitAVBL    ;Always wait for a VBL first.
  112.  
  113.     move.l    Screen(pc),a0
  114.     CALL    scrRemakeScreen    ;Reposition the screen now.
  115.     bra    Main
  116.  
  117. Fade_Here:
  118.     moveq    #00,d7
  119.     move.l    SCRBase(pc),a6
  120.  
  121. .Fade    move.l    Screen(pc),a0
  122.     CALL    scrWaitAVBL
  123.     move.l    Screen(pc),a0
  124.     moveq    #4,d1    ;d1 = Speed
  125.     moveq    #$000,d2
  126.     moveq    #00,d3    ;d1 = Start at colour zero.
  127.     moveq    #32,d4    ;d2 = Amount of colours (32)
  128.     move.l    GS_Palette(a0),a1    ;a1 = Palette to fade to.
  129.     addq.w    #8,a1
  130.     move.w    d7,d0
  131.     CALL    scrPaletteToColour
  132.     move.w    d0,d7
  133.     bne.s    .Fade
  134.     rts
  135.  
  136. ;===========================================================================;
  137. ;                           CODE-RELATIVE DATA
  138. ;===========================================================================;
  139.  
  140. JoyData:    dc.l  0
  141.  
  142. ScreenTags:    dc.l  TAGS_SCREEN
  143. Screen:        dc.l  0
  144.         dc.l  GSA_MemPtr1
  145. GMemPtr:    dc.l  0
  146.         dc.l  GSA_Palette
  147. GPalette:    dc.l  0
  148.         dc.l  GSA_Width,320
  149.         dc.l  GSA_Height,256
  150.         dc.l    GSA_BitmapTags,0
  151.         dc.l    BMA_AmtColours,32
  152.         dc.l    TAGEND,0
  153.         ;dc.l  GSA_Attrib,CENTRE
  154.         ;dc.l  GSA_ScrMode,LACED
  155.         dc.l  TAGEND
  156.  
  157. PictureTags:    dc.l  TAGS_PICTURE
  158. Picture:    dc.l  0
  159.         dc.l    PCA_BitmapTags,0
  160.         dc.l    BMA_Data
  161. PicData:    dc.l    0
  162.         dc.l    BMA_Width,320
  163.         dc.l    BMA_Height,256
  164.         dc.l    BMA_AmtColours,32
  165.         dc.l    BMA_MemType,MEM_VIDEO
  166.         dc.l    TAGEND,0
  167.         dc.l  PCA_Options,IMG_RESIZE
  168.         dc.l  PCA_Source,.file
  169.         dc.l  TAGEND
  170.  
  171. .file        FILENAME "GMS:demos/data/PIC.Green"
  172.  
  173. ;===========================================================================;
  174.  
  175. ProgName:    dc.b  "Redimension",0
  176. ProgAuthor:    dc.b  "Paul Manias",0
  177. ProgDate:    dc.b  "10 December 1997",0
  178. ProgCopyright:    dc.b  "DreamWorld Productions (c) 1996-1997.  Freely distributable.",0
  179. ProgShort:    dc.b  "Screen redimensioning demo.",0
  180.         even
  181.